import config from './config.js';
import store from '../store/index.js';
import request from './request.js';
export default {
	timeAgo(seconds) {
		var units = {
			'年': 31557600,
			'月': 2629800,
			'天': 86400,
			'小时': 3600,
			'分钟': 60
		}
		var humanize = '';
		for (var key in units) {
			if (seconds >= units[key]) {
				humanize = Math.floor(seconds / units[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},

	// 公共跳转方法
	jump(url, type = 1) {
		// 保留当前页面，跳转到应用内的某个页面
		if (type == 1) {
			uni.navigateTo({
				url: url
			})
		}

		// 关闭当前页面，跳转到应用内的某个页面
		if (type == 2) {
			uni.redirectTo({
				url: url
			})
		}
		// 关闭所有页面，打开到应用内的某个页面
		if (type == 3) {
			uni.reLaunch({
				url: url
			})
		}

		// 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面
		if (type == 4) {
			uni.switchTab({
				url: url
			})
		}
	},
	tostring(value){
		return JSON.stringify(value);
	},
	/* 打电话 */
	tel(mobile) {
		uni.makePhoneCall({
			phoneNumber: mobile
		}) 
	},
	/* 复制微信 */
	copy(no) {
		uni.setClipboardData({
			data: no,
			success(res) {
				uni.showToast({
					title: "复制成功",
				})
			},
			fail(res) {
				console.log(`setClipboardData调用失败`);
			},
		});
	},
	/* 小程序登录获取code */
	uniLogin() {
		return new Promise((resolve, reject) => {
		  uni.login({
			  success: (res) => {
			  	resolve(res);
			  },
			  fail: (res) => {
			  	 alert(res.errMsg)
			  }
		  })
		})
	},
	
	/* 获取模糊地理位置 */
	getLocation () {
		return new Promise((resolve, reject) => {
		  uni.getLocation({
			  type: 'wgs84',
			  success: (res) => {
			  	resolve(res);
			  },
			  fail: (res) => {
			  	reject(res);
			  }
		  })
		})
	},
	
	/** 弹窗是否跳转人人豆页面 */
	jumpBeans() {
		uni.showModal({
			title: '提示',
			content: '您的人人豆不足~',
			confirmText:'前往获取',
			cancelText:'取消',
			success (res) {
				if (res.confirm) {
					uni.navigateTo({
						url:"/pages/my/beans"
					})
				}
			}
		})
	},
	
	/** 打开权限设置 */
	openSetting () {
		return new Promise((resolve, reject) => {
		  uni.openSetting({
			  success: (res) => {
			  	resolve(res);
			  },
			  fail: (res) => {
			  	reject(res);
			  }
		  })
		})
	},
	
	/* 小程序对比版本 */
	compareVersion(v1, v2) {
		v1 = v1.split('.')
		v2 = v2.split('.')
		const len = Math.max(v1.length, v2.length)
	
		while (v1.length < len) {
			v1.push('0')
		}
		while (v2.length < len) {
			v2.push('0')
		}
	
		for (let i = 0; i < len; i++) {
			const num1 = parseInt(v1[i])
			const num2 = parseInt(v2[i])
	
			if (num1 > num2) {
			  return 1
			} else if (num1 < num2) {
			  return -1
			}
		}
		return 0
	},
	
	customer(customer) {
		// #ifdef MP-WEIXIN
		const version = uni.getSystemInfoSync().SDKVersion
		if (this.compareVersion(version, '2.19.0') >= 0) {
			if(customer) {
				uni.openCustomerServiceChat({
					extInfo: {url: customer.url},
					corpId: customer.corpId,
					success(res) {}
				})
			}else{
				uni.showModal({
					title: '提示',
					content: '该小程序暂未绑定微信客服！'
				})
			}
		} else {
			// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
			uni.showModal({
				title: '提示',
				content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
			})
		}
		// #endif
	},
	
	//	计算两点之间直线距离
	algorithm (point1, point2) {
		let [x1, y1] = point1;
		let [x2, y2] = point2;
	    let Lat1 = this.rad(x1); // 纬度
	    let Lat2 = this.rad(x2);
	    let a = Lat1 - Lat2;//	两点纬度之差
	    let b = this.rad(y1) - this.rad(y2); //	经度之差
	    let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) 
	        	+ Math.cos(Lat1) * Math.cos(Lat2) * Math.pow(Math.sin(b / 2), 2)));
	        //	计算两点距离的公式
	    s = s * 6378137.0;//	弧长等于弧度乘地球半径（半径为米）
	    s = Math.round(s * 10000) / 10000;//	精确距离的数值
	    return s;
	},
	
	//角度转换成弧度
	rad(d) {
	    return d * Math.PI / 180.00;
	},
	
	// 获取文件后缀名
	getFileExt(file) {
		return file.replace(/.+\./, '').toLowerCase();
	}
}
